home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / AmiVoGL_MDEV.lha / src / draw.s < prev    next >
Text File  |  1997-12-30  |  8KB  |  537 lines

  1.  
  2. ; Maxon C++ Compiler
  3. ; LS2:work/voGL/src/draw.c
  4.     mc68020
  5.     mc68881
  6.     XREF    _newtokens
  7.     XREF    _multvector
  8.     XREF    _WtoVy
  9.     XREF    _WtoVx
  10.     XREF    _verror
  11.     XREF    _quickclip
  12.     XREF    _clip
  13.     XREF    _std__in
  14.     XREF    _std__out
  15.     XREF    _std__err
  16.     XREF    ___MEMFLAGS
  17.     XREF    _vdevice
  18.  
  19.     SECTION ":0",CODE
  20.  
  21.  
  22.     XDEF    _draw
  23. _draw
  24. L13    EQU    -$40
  25.     link    a5,#L13+36
  26. L14    EQU    $4CFC
  27.     movem.l    d2-d7/a2/a3/a6,-(a7)
  28.     move.s    $10(a5),d4
  29.     move.s    $C(a5),d5
  30.     XREF    userbreak_flagpos
  31.     move.l    userbreak_flagpos,a1
  32.     btst    #4,(a1)
  33.     bne    L15
  34.     tst.b    _vdevice
  35.     bne    L1
  36.     pea    L16
  37.     jsr    _verror
  38.     addq.l    #4,a7
  39. L1
  40.     tst.b    _vdevice+2
  41.     beq    L2
  42.     pea    4.w
  43.     jsr    _newtokens
  44.     addq.l    #4,a7
  45.     move.l    d0,-4(a5)
  46.     move.l    d0,a3
  47.     moveq    #0,d7
  48.     move.l    #$8,0(a3,d7.l*4)
  49.     moveq    #1,d7
  50.     move.l    $8(a5),0(a3,d7.l*4)
  51.     moveq    #2,d7
  52.     move.l    d5,0(a3,d7.l*4)
  53.     moveq    #3,d7
  54.     move.l    d4,0(a3,d7.l*4)
  55.     move.l    #_vdevice+$28,a3
  56.     moveq    #0,d7
  57.     move.l    $8(a5),0(a3,d7.l*4)
  58.     move.l    #_vdevice+$28,a3
  59.     moveq    #1,d7
  60.     move.l    d5,0(a3,d7.l*4)
  61.     move.l    #_vdevice+$28,a3
  62.     moveq    #2,d7
  63.     move.l    d4,0(a3,d7.l*4)
  64.     clr.b    _vdevice+5
  65.     fmovem.x (a7)+,[LATEST]
  66.     movem.l    (a7)+,#L14
  67.     unlk    a5
  68.     rts
  69. L2
  70.     tst.b    _vdevice+5
  71.     bne    L3
  72.     move.l    _vdevice+$14,a2
  73.     move.l    #_vdevice+$28,a3
  74.     move.l    #_vdevice+$38,a6
  75.     jsr    _multvector
  76. L3
  77.     move.l    #_vdevice+$28,a3
  78.     moveq    #0,d7
  79.     move.l    $8(a5),0(a3,d7.l*4)
  80.     move.l    #_vdevice+$28,a3
  81.     moveq    #1,d7
  82.     move.l    d5,0(a3,d7.l*4)
  83.     move.l    #_vdevice+$28,a3
  84.     moveq    #2,d7
  85.     move.l    d4,0(a3,d7.l*4)
  86.     move.l    _vdevice+$14,a2
  87.     move.l    #_vdevice+$28,a3
  88.     lea    -$1C(a5),a6
  89.     jsr    _multvector
  90.     tst.b    _vdevice+1
  91.     beq    L4
  92.     pea    -$1C(a5)
  93.     jsr    _WtoVx
  94.     addq.l    #4,a7
  95.     move.l    d0,d3
  96.     pea    -$1C(a5)
  97.     jsr    _WtoVy
  98.     addq.l    #4,a7
  99.     move.l    d0,d2
  100.     move.l    _vdevice+$A4,a3
  101.     move.l    d2,-(a7)
  102.     move.l    d3,-(a7)
  103.     jsr    (a3)
  104.     addq.l    #$8,a7
  105.     move.l    d3,_vdevice+$7C
  106.     move.l    d2,_vdevice+$80
  107.     clr.b    _vdevice+5
  108.     bra    L7
  109. L4
  110.     tst.b    _vdevice+5
  111.     beq    L5
  112.     lea    -$1C(a5),a3
  113.     move.l    #_vdevice+$38,a6
  114.     jsr    _quickclip
  115.     bra    L6
  116. L5
  117.     lea    -$1C(a5),a3
  118.     move.l    #_vdevice+$38,a6
  119.     jsr    _clip
  120. L6
  121. L7
  122.     lea    -$1C(a5),a3
  123.     moveq    #0,d7
  124.     move.l    #_vdevice+$38,a6
  125.     moveq    #0,d6
  126.     move.l    0(a3,d7.l*4),0(a6,d6.l*4)
  127.     lea    -$1C(a5),a3
  128.     moveq    #1,d7
  129.     move.l    #_vdevice+$38,a6
  130.     moveq    #1,d6
  131.     move.l    0(a3,d7.l*4),0(a6,d6.l*4)
  132.     lea    -$1C(a5),a3
  133.     moveq    #2,d7
  134.     move.l    #_vdevice+$38,a6
  135.     moveq    #2,d6
  136.     move.l    0(a3,d7.l*4),0(a6,d6.l*4)
  137.     lea    -$1C(a5),a3
  138.     moveq    #3,d7
  139.     move.l    #_vdevice+$38,a6
  140.     moveq    #3,d6
  141.     move.l    0(a3,d7.l*4),0(a6,d6.l*4)
  142.     fmovem.x (a7)+,[LATEST]
  143.     movem.l    (a7)+,#L14
  144.     unlk    a5
  145.     rts
  146.  
  147.     XDEF    _draws
  148. _draws
  149. L17    EQU    -$10
  150.     link    a5,#L17+16
  151. L18    EQU    $80
  152.     movem.l    #L18,-(a7)
  153.     fmovem.x fp7,-(a7)
  154.     move.l    userbreak_flagpos,a1
  155.     btst    #4,(a1)
  156.     bne    L15
  157.     move.w    $C(a5),d7
  158.     ext.l    d7
  159.     fmove.l    d7,fp7
  160.     fmove.s    fp7,-(a7)
  161.     move.w    $A(a5),d7
  162.     ext.l    d7
  163.     fmove.l    d7,fp7
  164.     fmove.s    fp7,-(a7)
  165.     move.w    $8(a5),d7
  166.     ext.l    d7
  167.     fmove.l    d7,fp7
  168.     fmove.s    fp7,-(a7)
  169.     bsr    _draw
  170.     lea    $C(a7),a7
  171.     fmovem.x (a7)+,[LATEST]
  172.     movem.l    (a7)+,#L18
  173.     unlk    a5
  174.     rts
  175.  
  176.     XDEF    _drawi
  177. _drawi
  178. L19    EQU    -$C
  179.     link    a5,#L19+12
  180. L20    EQU    0
  181.     movem.l    #L20,-(a7)
  182.     fmovem.x fp7,-(a7)
  183.     move.l    userbreak_flagpos,a1
  184.     btst    #4,(a1)
  185.     bne    L15
  186.     fmove.l    $10(a5),fp7
  187.     fmove.s    fp7,-(a7)
  188.     fmove.l    $C(a5),fp7
  189.     fmove.s    fp7,-(a7)
  190.     fmove.l    $8(a5),fp7
  191.     fmove.s    fp7,-(a7)
  192.     bsr    _draw
  193.     lea    $C(a7),a7
  194.     fmovem.x (a7)+,[LATEST]
  195.     movem.l    (a7)+,#L20
  196.     unlk    a5
  197.     rts
  198.  
  199.     XDEF    _draw2
  200. _draw2
  201. L21    EQU    0
  202.     link    a5,#L21
  203. L22    EQU    0
  204.     movem.l    #L22,-(a7)
  205.     move.l    userbreak_flagpos,a1
  206.     btst    #4,(a1)
  207.     bne    L15
  208.     tst.b    _vdevice
  209.     bne    L8
  210.     pea    L23
  211.     jsr    _verror
  212.     addq.l    #4,a7
  213. L8
  214.     clr.l    -(a7)
  215.     move.l    $C(a5),-(a7)
  216.     move.l    $8(a5),-(a7)
  217.     bsr    _draw
  218.     lea    $C(a7),a7
  219.     fmovem.x (a7)+,[LATEST]
  220.     movem.l    (a7)+,#L22
  221.     unlk    a5
  222.     rts
  223.  
  224.     XDEF    _draw2s
  225. _draw2s
  226. L24    EQU    -$10
  227.     link    a5,#L24+16
  228. L25    EQU    $80
  229.     movem.l    #L25,-(a7)
  230.     fmovem.x fp7,-(a7)
  231.     move.l    userbreak_flagpos,a1
  232.     btst    #4,(a1)
  233.     bne    L15
  234.     move.w    $A(a5),d7
  235.     ext.l    d7
  236.     fmove.l    d7,fp7
  237.     fmove.s    fp7,-(a7)
  238.     move.w    $8(a5),d7
  239.     ext.l    d7
  240.     fmove.l    d7,fp7
  241.     fmove.s    fp7,-(a7)
  242.     bsr    _draw2
  243.     addq.l    #$8,a7
  244.     fmovem.x (a7)+,[LATEST]
  245.     movem.l    (a7)+,#L25
  246.     unlk    a5
  247.     rts
  248.  
  249.     XDEF    _draw2i
  250. _draw2i
  251. L26    EQU    -$C
  252.     link    a5,#L26+12
  253. L27    EQU    0
  254.     movem.l    #L27,-(a7)
  255.     fmovem.x fp7,-(a7)
  256.     move.l    userbreak_flagpos,a1
  257.     btst    #4,(a1)
  258.     bne    L15
  259.     fmove.l    $C(a5),fp7
  260.     fmove.s    fp7,-(a7)
  261.     fmove.l    $8(a5),fp7
  262.     fmove.s    fp7,-(a7)
  263.     bsr    _draw2
  264.     addq.l    #$8,a7
  265.     fmovem.x (a7)+,[LATEST]
  266.     movem.l    (a7)+,#L27
  267.     unlk    a5
  268.     rts
  269.  
  270.     XDEF    _rdr
  271. _rdr
  272. L28    EQU    -$14
  273.     link    a5,#L28+20
  274. L29    EQU    $880
  275.     movem.l    #L29,-(a7)
  276.     fmovem.x fp7,-(a7)
  277.     move.l    userbreak_flagpos,a1
  278.     btst    #4,(a1)
  279.     bne    L15
  280.     tst.b    _vdevice
  281.     bne    L9
  282.     pea    L30
  283.     jsr    _verror
  284.     addq.l    #4,a7
  285. L9
  286.     move.l    #_vdevice+$28,a3
  287.     moveq    #2,d7
  288.     fmove.s    0(a3,d7.l*4),fp7
  289.     fadd.s    $10(a5),fp7
  290.     fmove.s    fp7,-(a7)
  291.     move.l    #_vdevice+$28,a3
  292.     moveq    #1,d7
  293.     fmove.s    0(a3,d7.l*4),fp7
  294.     fadd.s    $C(a5),fp7
  295.     fmove.s    fp7,-(a7)
  296.     move.l    #_vdevice+$28,a3
  297.     moveq    #0,d7
  298.     fmove.s    0(a3,d7.l*4),fp7
  299.     fadd.s    $8(a5),fp7
  300.     fmove.s    fp7,-(a7)
  301.     bsr    _draw
  302.     lea    $C(a7),a7
  303.     fmovem.x (a7)+,[LATEST]
  304.     movem.l    (a7)+,#L29
  305.     unlk    a5
  306.     rts
  307.  
  308.     XDEF    _rdrs
  309. _rdrs
  310. L31    EQU    -$10
  311.     link    a5,#L31+16
  312. L32    EQU    $80
  313.     movem.l    #L32,-(a7)
  314.     fmovem.x fp7,-(a7)
  315.     move.l    userbreak_flagpos,a1
  316.     btst    #4,(a1)
  317.     bne    L15
  318.     move.w    $C(a5),d7
  319.     ext.l    d7
  320.     fmove.l    d7,fp7
  321.     fmove.s    fp7,-(a7)
  322.     move.w    $A(a5),d7
  323.     ext.l    d7
  324.     fmove.l    d7,fp7
  325.     fmove.s    fp7,-(a7)
  326.     move.w    $8(a5),d7
  327.     ext.l    d7
  328.     fmove.l    d7,fp7
  329.     fmove.s    fp7,-(a7)
  330.     bsr    _rdr
  331.     lea    $C(a7),a7
  332.     fmovem.x (a7)+,[LATEST]
  333.     movem.l    (a7)+,#L32
  334.     unlk    a5
  335.     rts
  336.  
  337.     XDEF    _rdri
  338. _rdri
  339. L33    EQU    -$C
  340.     link    a5,#L33+12
  341. L34    EQU    0
  342.     movem.l    #L34,-(a7)
  343.     fmovem.x fp7,-(a7)
  344.     move.l    userbreak_flagpos,a1
  345.     btst    #4,(a1)
  346.     bne    L15
  347.     fmove.l    $10(a5),fp7
  348.     fmove.s    fp7,-(a7)
  349.     fmove.l    $C(a5),fp7
  350.     fmove.s    fp7,-(a7)
  351.     fmove.l    $8(a5),fp7
  352.     fmove.s    fp7,-(a7)
  353.     bsr    _rdr
  354.     lea    $C(a7),a7
  355.     fmovem.x (a7)+,[LATEST]
  356.     movem.l    (a7)+,#L34
  357.     unlk    a5
  358.     rts
  359.  
  360.     XDEF    _rdr2
  361. _rdr2
  362. L35    EQU    -$14
  363.     link    a5,#L35+20
  364. L36    EQU    $880
  365.     movem.l    #L36,-(a7)
  366.     fmovem.x fp7,-(a7)
  367.     move.l    userbreak_flagpos,a1
  368.     btst    #4,(a1)
  369.     bne    L15
  370.     tst.b    _vdevice
  371.     bne    L10
  372.     pea    L37
  373.     jsr    _verror
  374.     addq.l    #4,a7
  375. L10
  376.     clr.l    -(a7)
  377.     move.l    #_vdevice+$28,a3
  378.     moveq    #1,d7
  379.     fmove.s    0(a3,d7.l*4),fp7
  380.     fadd.s    $C(a5),fp7
  381.     fmove.s    fp7,-(a7)
  382.     move.l    #_vdevice+$28,a3
  383.     moveq    #0,d7
  384.     fmove.s    0(a3,d7.l*4),fp7
  385.     fadd.s    $8(a5),fp7
  386.     fmove.s    fp7,-(a7)
  387.     bsr    _draw
  388.     lea    $C(a7),a7
  389.     fmovem.x (a7)+,[LATEST]
  390.     movem.l    (a7)+,#L36
  391.     unlk    a5
  392.     rts
  393.  
  394.     XDEF    _rdr2s
  395. _rdr2s
  396. L38    EQU    -$10
  397.     link    a5,#L38+16
  398. L39    EQU    $80
  399.     movem.l    #L39,-(a7)
  400.     fmovem.x fp7,-(a7)
  401.     move.l    userbreak_flagpos,a1
  402.     btst    #4,(a1)
  403.     bne    L15
  404.     move.w    $A(a5),d7
  405.     ext.l    d7
  406.     fmove.l    d7,fp7
  407.     fmove.s    fp7,-(a7)
  408.     move.w    $8(a5),d7
  409.     ext.l    d7
  410.     fmove.l    d7,fp7
  411.     fmove.s    fp7,-(a7)
  412.     bsr    _rdr2
  413.     addq.l    #$8,a7
  414.     fmovem.x (a7)+,[LATEST]
  415.     movem.l    (a7)+,#L39
  416.     unlk    a5
  417.     rts
  418.  
  419.     XDEF    _rdr2i
  420. _rdr2i
  421. L40    EQU    -$C
  422.     link    a5,#L40+12
  423. L41    EQU    0
  424.     movem.l    #L41,-(a7)
  425.     fmovem.x fp7,-(a7)
  426.     move.l    userbreak_flagpos,a1
  427.     btst    #4,(a1)
  428.     bne    L15
  429.     fmove.l    $C(a5),fp7
  430.     fmove.s    fp7,-(a7)
  431.     fmove.l    $8(a5),fp7
  432.     fmove.s    fp7,-(a7)
  433.     bsr    _rdr2
  434.     addq.l    #$8,a7
  435.     fmovem.x (a7)+,[LATEST]
  436.     movem.l    (a7)+,#L41
  437.     unlk    a5
  438.     rts
  439.  
  440.     XDEF    _bgnline
  441. _bgnline
  442. L42    EQU    0
  443. L43    EQU    0
  444.     movem.l    #L43,-(a7)
  445.     move.l    userbreak_flagpos,a1
  446.     btst    #4,(a1)
  447.     bne    L15
  448.     tst.b    _vdevice+$DC
  449.     beq    L11
  450.     pea    L44
  451.     jsr    _verror
  452.     addq.l    #4,a7
  453. L11
  454.     move.b    #2,_vdevice+$DC
  455.     move.b    #1,_vdevice+$DD
  456.     fmovem.x (a7)+,[LATEST]
  457.     movem.l    (a7)+,#L43
  458.     rts
  459.  
  460.     XDEF    _endline
  461. _endline
  462. L45    EQU    0
  463. L46    EQU    0
  464.     movem.l    #L46,-(a7)
  465.     clr.b    _vdevice+$DC
  466.     clr.b    _vdevice+$DD
  467.     fmovem.x (a7)+,[LATEST]
  468.     movem.l    (a7)+,#L46
  469.     rts
  470.  
  471.     XDEF    _bgnclosedline
  472. _bgnclosedline
  473. L47    EQU    0
  474. L48    EQU    0
  475.     movem.l    #L48,-(a7)
  476.     move.l    userbreak_flagpos,a1
  477.     btst    #4,(a1)
  478.     bne    L15
  479.     tst.b    _vdevice+$DC
  480.     beq    L12
  481.     pea    L49
  482.     jsr    _verror
  483.     addq.l    #4,a7
  484. L12
  485.     move.b    #3,_vdevice+$DC
  486.     move.b    #1,_vdevice+$DD
  487.     fmovem.x (a7)+,[LATEST]
  488.     movem.l    (a7)+,#L48
  489.     rts
  490.  
  491.     XDEF    _endclosedline
  492. _endclosedline
  493. L50    EQU    0
  494.     link    a5,#L50
  495. L51    EQU    0
  496.     movem.l    #L51,-(a7)
  497.     move.l    userbreak_flagpos,a1
  498.     btst    #4,(a1)
  499.     bne    L15
  500.     clr.b    _vdevice+$DC
  501.     move.l    _vdevice+$D8,-(a7)
  502.     move.l    _vdevice+$D4,-(a7)
  503.     move.l    _vdevice+$D0,-(a7)
  504.     bsr    _draw
  505.     lea    $C(a7),a7
  506.     fmovem.x (a7)+,[LATEST]
  507.     movem.l    (a7)+,#L51
  508.     unlk    a5
  509.     rts
  510.  
  511. L15
  512.     XREF    userbreak
  513.     jsr    userbreak
  514.  
  515. L23
  516.     dc.b    'draw2: vogl not initialised',0
  517. L16
  518.     dc.b    'draw: vogl not initialised',0
  519. L37
  520.     dc.b    'rdr2: vogl not initialised',0
  521. L30
  522.     dc.b    'rdr: vogl not initialised',0
  523. L49
  524.     dc.b    'vogl: bgncloseline mode already belongs to some other bgn ro'
  525.     dc.b    'utine',0
  526. L44
  527.     dc.b    'vogl: bgnline mode already belongs to some other bgn routine'
  528.     dc.b    0
  529.